package com.zeyu.soc.log.interactive.serializer.impl;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

import com.zeyu.soc.log.interactive.serializer.Unserializer;

public class JavaObjectUnserializer implements Unserializer {

	// ================================================================
	// Constants
	// ================================================================

	// ================================================================
	// Fields
	// ================================================================

	// ================================================================
	// Constructors
	// ================================================================

	// ================================================================
	// Methods from/for super Interfaces or SuperClass
	// ================================================================

	@Override
	public Object unserialize(byte[] b) {
		Object resultObj = null;
		ByteArrayInputStream bais = null;
		ObjectInputStream ois = null;
		try {
			bais = new ByteArrayInputStream(b);
			ois = new ObjectInputStream(bais);
			resultObj = ois.readObject();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {

			try {
				ois.close();
			} catch (IOException e) {
			}

			try {
				bais.close();
			} catch (IOException e) {
			}

		}
		return resultObj;
	}

	// ================================================================
	// Public or Protected Methods
	// ================================================================

	// ================================================================
	// Getter & Setter
	// ================================================================

	// ================================================================
	// Private Methods
	// ================================================================

	// ================================================================
	// Inner or Anonymous Class
	// ================================================================

	// ================================================================
	// Test Methods
	// ================================================================
}
